home *** CD-ROM | disk | FTP | other *** search
- package javax.swing;
-
- import java.awt.Component;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.MediaTracker;
- import java.awt.Toolkit;
- import java.awt.image.ColorModel;
- import java.awt.image.ImageObserver;
- import java.awt.image.MemoryImageSource;
- import java.awt.image.PixelGrabber;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.net.URL;
-
- public class ImageIcon implements Icon, Serializable {
- transient Image image;
- transient int loadStatus;
- ImageObserver imageObserver;
- String description;
- protected static final Component component = new 1();
- protected static final MediaTracker tracker;
- int width;
- int height;
-
- static {
- tracker = new MediaTracker(component);
- }
-
- public ImageIcon() {
- this.loadStatus = 0;
- this.description = null;
- this.width = -1;
- this.height = -1;
- }
-
- public ImageIcon(Image var1) {
- this.loadStatus = 0;
- this.description = null;
- this.width = -1;
- this.height = -1;
- this.image = var1;
- Object var2 = var1.getProperty("comment", this.imageObserver);
- if (var2 instanceof String) {
- this.description = (String)var2;
- }
-
- this.loadImage(var1);
- }
-
- public ImageIcon(Image var1, String var2) {
- this(var1);
- this.description = var2;
- }
-
- public ImageIcon(String var1) {
- this(var1, var1);
- }
-
- public ImageIcon(String var1, String var2) {
- this.loadStatus = 0;
- this.description = null;
- this.width = -1;
- this.height = -1;
- this.image = Toolkit.getDefaultToolkit().getImage(var1);
- this.description = var2;
- this.loadImage(this.image);
- }
-
- public ImageIcon(URL var1) {
- this(var1, var1.toExternalForm());
- }
-
- public ImageIcon(URL var1, String var2) {
- this.loadStatus = 0;
- this.description = null;
- this.width = -1;
- this.height = -1;
- this.image = Toolkit.getDefaultToolkit().getImage(var1);
- this.description = var2;
- this.loadImage(this.image);
- }
-
- public ImageIcon(byte[] var1) {
- this.loadStatus = 0;
- this.description = null;
- this.width = -1;
- this.height = -1;
- this.image = Toolkit.getDefaultToolkit().createImage(var1);
- if (this.image != null) {
- Object var2 = this.image.getProperty("comment", this.imageObserver);
- if (var2 instanceof String) {
- this.description = (String)var2;
- }
-
- this.loadImage(this.image);
- }
- }
-
- public ImageIcon(byte[] var1, String var2) {
- this.loadStatus = 0;
- this.description = null;
- this.width = -1;
- this.height = -1;
- this.image = Toolkit.getDefaultToolkit().createImage(var1);
- if (this.image != null) {
- this.description = var2;
- this.loadImage(this.image);
- }
- }
-
- public String getDescription() {
- return this.description;
- }
-
- public int getIconHeight() {
- return this.height;
- }
-
- public int getIconWidth() {
- return this.width;
- }
-
- public Image getImage() {
- return this.image;
- }
-
- public int getImageLoadStatus() {
- return this.loadStatus;
- }
-
- public ImageObserver getImageObserver() {
- return this.imageObserver;
- }
-
- protected void loadImage(Image var1) {
- MediaTracker var2 = tracker;
- synchronized(var2){}
-
- try {
- tracker.addImage(var1, 0);
-
- try {
- tracker.waitForID(0, 5000L);
- } catch (InterruptedException var5) {
- System.out.println("INTERRUPTED while loading Image");
- }
-
- this.loadStatus = tracker.statusID(0, false);
- tracker.removeImage(var1, 0);
- this.width = var1.getWidth(this.imageObserver);
- this.height = var1.getHeight(this.imageObserver);
- } catch (Throwable var6) {
- throw var6;
- }
-
- }
-
- public synchronized void paintIcon(Component var1, Graphics var2, int var3, int var4) {
- if (this.imageObserver == null) {
- var2.drawImage(this.image, var3, var4, var1);
- } else {
- var2.drawImage(this.image, var3, var4, this.imageObserver);
- }
-
- }
-
- private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
- var1.defaultReadObject();
- int var2 = var1.readInt();
- int var3 = var1.readInt();
- int[] var4 = (int[])var1.readObject();
- if (var4 != null) {
- Toolkit var5 = Toolkit.getDefaultToolkit();
- ColorModel var6 = ColorModel.getRGBdefault();
- this.image = var5.createImage(new MemoryImageSource(var2, var3, var6, var4, 0, var2));
- }
-
- }
-
- public void setDescription(String var1) {
- this.description = var1;
- }
-
- public void setImage(Image var1) {
- this.image = var1;
- this.loadImage(var1);
- }
-
- public void setImageObserver(ImageObserver var1) {
- this.imageObserver = var1;
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- var1.defaultWriteObject();
- int var2 = this.getIconWidth();
- int var3 = this.getIconHeight();
- int[] var4 = this.image != null ? new int[var2 * var3] : null;
- if (this.image != null) {
- try {
- PixelGrabber var5 = new PixelGrabber(this.image, 0, 0, var2, var3, var4, 0, var2);
- var5.grabPixels();
- if ((var5.getStatus() & 128) != 0) {
- throw new IOException("failed to load image contents");
- }
- } catch (InterruptedException var6) {
- throw new IOException("image load interrupted");
- }
- }
-
- var1.writeInt(var2);
- var1.writeInt(var3);
- var1.writeObject(var4);
- }
- }
-